package com.info.zhiduoduo.repository.dto.project;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.info.zhiduoduo.common.excelconverter.InvoiceTypeConverter;
import com.info.zhiduoduo.common.excelconverter.ProjectOfflinePayStateConverter;
import com.info.zhiduoduo.common.excelconverter.ProjectStateConverter;

import java.math.BigDecimal;
import java.util.Date;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)  //setter return this;
@ToString
public class ProjectJiugeOfflinePayDto {

	@ExcelProperty("创建时间")
	@ApiModelProperty("创建时间")
	private Date createtime;

	@ExcelIgnore
	@ApiModelProperty
	private int projectid;

	@ApiModelProperty("项目名")
	@ExcelProperty("项目名")
	private String projectname;

	@ApiModelProperty("项目类型 1: 项目 4:长期项目子项目")
	@ExcelProperty("项目类型")
	private int type;

	@ExcelIgnore
	@ApiModelProperty
	private int compid;

	@ExcelProperty("企业")
	@ApiModelProperty("企业")
	private String compname;

	@ExcelIgnore
	@ApiModelProperty
	private int userid;

	@ExcelProperty("创客工作室")
	@ApiModelProperty("创客工作室")
	private String username;

	@ExcelProperty("创客名")
	@ApiModelProperty("创客名")
	private String realname;

	@ExcelIgnore
	@ApiModelProperty
	private Integer categoryid;

	@ExcelIgnore
	@ApiModelProperty
	private String categoryname;

	@ExcelProperty("项目发布金额")
	@ApiModelProperty("项目发布金额")
	private BigDecimal projectamount;

	@ExcelProperty("项目成交金额")
	@ApiModelProperty("项目成交金额")
	private BigDecimal projectdealamount;

	@ExcelProperty("项目服务费")
	@ApiModelProperty("项目服务费")
	private BigDecimal projectservicecharge;

	@ExcelProperty("项目税费")
	@ApiModelProperty("项目税费")
	private BigDecimal projecttaxfee;

	@ExcelProperty("项目实际支付给创客的金额")
	@ApiModelProperty("项目实际支付给创客的金额")
	private BigDecimal projectPayAmount;

	@ExcelIgnore
	@ApiModelProperty
	private int projectcycle;

	@ExcelProperty("项目开始时间")
	@ApiModelProperty("项目开始时间")
	private Date projectstart;

	@ExcelProperty("项目结束时间")
	@ApiModelProperty("项目结束时间")
	private Date projectfinish;

	@ExcelIgnore
	@ApiModelProperty
	private int leftDays;

	@ExcelIgnore
	@ApiModelProperty("支付方式Id")
	private Integer payId;

	/** 线下支付状态: 1:未支付 2:已支付 3:已处理 */
	@ExcelProperty(value = "线下支付状态", converter = ProjectOfflinePayStateConverter.class)
	@ApiModelProperty("线下支付状态: 1:未支付 2:已支付")
	private int offlinePayState;

	@ExcelIgnore
	@ApiModelProperty("平台线下代付凭证")
	private String receiptimg;

	@ExcelProperty("备注")
	@ApiModelProperty("备注")
	private String remark;

	@ExcelProperty(value = "状态", converter = ProjectStateConverter.class)
	@ApiModelProperty(value = "状态")
	private int state;

	@ExcelProperty(value = "发票类型", converter = InvoiceTypeConverter.class)
	@ApiModelProperty
	private int invoicetype;

	@ExcelIgnore
	@ApiModelProperty
	private int arbitrate;

	@ExcelIgnore
	@ApiModelProperty(value = "自动验收")
	private int autoCheck;

	@ExcelIgnore
	@ApiModelProperty
	private int businessManagerId;

	@ExcelProperty("商务经理")
	@ApiModelProperty("商务经理")
	private String businessManagerName;

	@ExcelProperty("有无合伙人")
	@ApiModelProperty("有无合伙人")
	private String hasPartner;

	@ExcelProperty("创客银行卡开户人")
	@ApiModelProperty("创客银行卡开户人")
	private String userAcctname;

	@ExcelProperty("创客银行卡号")
	@ApiModelProperty("创客银行卡号")
	private String userAcctno;

	@ExcelProperty("创客银行名")
	@ApiModelProperty("创客银行名")
	private String userBankname;

	@ExcelProperty("对公开户行网点")
	@ApiModelProperty("对公开户行网点")
	private String openAcctBankName;

	@ExcelProperty("对公创客银行卡开户人")
	@ApiModelProperty("对公创客银行卡开户人")
	private String userAcctname2;

	@ExcelProperty("对公开户行名称")
	@ApiModelProperty("对公开户行名称")
	private String userBankname2;

	@ExcelProperty("对公开户行网点")
	@ApiModelProperty("对公开户行网点")
	private String openAcctBankName2;

	@ExcelProperty("对公开户行行号，企业账户需要填，个人账户不需要")
	@ApiModelProperty("对公开户行行号，企业账户需要填，个人账户不需要")
	private String bankno2;

	@ExcelProperty("对公卡号")
	@ApiModelProperty("对公卡号")
	private String userAcctno2;
	@ExcelIgnore
	@ApiModelProperty("平台线下代付支付操作人")
	private Integer offlinePayAdminid;

	@ExcelIgnore
	@ApiModelProperty("主体ID")
	private Integer partyId;

	@ExcelIgnore
	@ApiModelProperty("主体企业名称")
	private String partyName;
}
